/**
 * 
 */
package ar.edu.utn.frgp.banco.service.impl;

import java.util.Date;
import java.util.List;

import ar.edu.utn.frgp.banco.dao.ReportesDao;
import ar.edu.utn.frgp.banco.dao.impl.ReportesDaoImpl;
import ar.edu.utn.frgp.banco.domain.Movimientos;
import ar.edu.utn.frgp.banco.domain.PagoServicios;
import ar.edu.utn.frgp.banco.domain.Transferencias;
import ar.edu.utn.frgp.banco.exceptions.DataAccessException;
import ar.edu.utn.frgp.banco.exceptions.ServiceException;
import ar.edu.utn.frgp.banco.service.ReportesService;
import ar.edu.utn.frgp.banco.utils.Logger;

/**
 * @author PUSDERKIS
 *
 */
public class ReportesServiceImpl implements ReportesService {
	
	ReportesDao reportesDao;
	
	public ReportesServiceImpl(){
		reportesDao = new ReportesDaoImpl();
	}

	/* (non-Javadoc)
	 * @see ar.edu.utn.frgp.banco.service.ReportesService#depositosYExtraccionesEntreFechas(java.lang.Long, java.util.Date, java.util.Date)
	 */
	@Override
	public List<Movimientos> depositosYExtraccionesEntreFechas(Long idCuenta,
			Date fechaIni, Date fechaFin) throws ServiceException {
		
		List<Movimientos> mov = null;
		
		
		try{
			mov = reportesDao.depositosYExtraccionesEntreFechas(idCuenta, fechaIni, fechaFin);
		} catch (DataAccessException e) {
			Logger.error("Ocurrio un error en el DAO.");
			throw new ServiceException(e.getError(),e);
		}
		
		
		return mov;
	}

	/* (non-Javadoc)
	 * @see ar.edu.utn.frgp.banco.service.ReportesService#historialPagoServicios(java.lang.String)
	 */
	@Override
	public List<PagoServicios> historialPagoServicios(String dni) {
		// TODO Auto-generated method stub
		return null;
	}

	/* (non-Javadoc)
	 * @see ar.edu.utn.frgp.banco.service.ReportesService#historialTransferenciasRealizadas(java.lang.Long)
	 */
	@Override
	public List<Transferencias> historialTransferenciasRealizadas(Long cuenta) 
			throws ServiceException {
		
		List<Transferencias> tf = null;
		
		try{
			tf = reportesDao.historialTransferenciasRealizadas(cuenta);
		} catch (DataAccessException e) {
			Logger.error("Ocurrio un error en el Dao.");
			throw new ServiceException(e.getError(),e);
		}
		
		return tf;
	}
}
